import type { StepsProps as AntStepsProps } from 'antd/es/steps';
import type { FC } from 'react';

export interface StepProps {
  /** 步骤的标题 */
  title?: React.ReactNode;
  /** 步骤的子标题 */
  subTitle?: React.ReactNode;
  /** 步骤的描述 */
  description?: React.ReactNode;
  /** 步骤的图标 */
  icon?: React.ReactNode;
  /** 步骤的状态 */
  status?: 'wait' | 'process' | 'finish' | 'error';
  /** 是否禁用 */
  disabled?: boolean;
  /** 自定义类名 */
  className?: string;
  /** 自定义样式 */
  style?: React.CSSProperties;
}

export interface StepsProps extends Omit<AntStepsProps, 'items'> {
  /** 是否使用 antd 原生组件 */
  antNative?: boolean;
  /** 是否放大进行中节点的图标，默认为 false */
  processIconSize?: boolean;
  /** 是否在进行中节点显示...，默认为 false */
  showProcessEllipsis?: boolean;
  /** 是否将等待中的节点显示为灰色点，默认为 false */
  showWaitDot?: boolean;
  /** 是否将图标和内容垂直布局并居中对齐，默认为 false */
  verticalAlign?: boolean;
  /** 步骤条数据 */
  items?: Array<StepProps>;
}

export type StepsComponent = FC<StepsProps>;
